Current computer systems provide individuals with opportunities to produce documents of professional quality, such as with desktop publishing software and graphics software programs. Input/Output (I/O) devices that support image input or output for production of such documents typically include, for example, monitors, printers, scanners, and digital cameras. Usually, a profile of each such I/O device known to the computer system is stored in the system, e.g., in a system folder, to identify particular characteristics of each device. By way of example, profiles typically include color matching information.
Color matching information is data, such as red, green, and blue (RGB) values and CMYK (cyan, magenta, yellow, black) values, that are associated with objects and text in the document to control how the objects and text will appear when they are displayed and printed. Because RGB and CMYK values may differ depending on the particular device involved, color matching is offered as a standard component of some operating systems, such as through a ColorSync.sup.J component of MacOS from Apple Computer, for example.
Utilization of the profiles normally occurs through the ColorSync.sup.J component. ColorSync.sup.J refers to a system level API (application program interface) that application programs and device drivers of a computer system call. A device profile typically provides a set of characteristics, such as RGB or CMYK values in the document, to describe the device to which the values are associated and enable the document to be portable, i.e., so that it will have the same appearance when drawn by different devices. Functionality provided for operations by an API component, such as ColorSync.sup.J, is only as useful as the implementation ability of the application program that calls it. An inherent limitation exists if an application program does not support the API. Plug-ins for the application program are then often provided to allow the utilization of the API functionality in the program. Subsequent versions of such programs are usually updated to include the necessary support.
Unfortunately, relying on an application program to utilize the API functionalities limits the situations in which these functionalities may be employed. Accordingly, a need exists for an efficient manner of utilizing API functionality by an end-user. The present invention addresses such a need.